home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1997-01-29 | 3.0 KB | 109 lines |
- 10 'QRESON - Q of Resonant Circuits - 17 DEC 94 rev. 27 SEP 96
- 20 IF EX$=""THEN EX$="EXIT"
- 30 CLS:KEY OFF
- 40 COLOR 7,0,1
- 50 PI=3.14159
- 60 U1$="###,###.###"
- 70 UL$=STRING$(80,205)
- 80 E$=STRING$(80,32)
- 90 '
- 100 '.....start
- 110 CLS:F=0:L=0:C=0:X=0:R=0:Q=0:J$="":Z$=""
- 120 COLOR 15,2
- 130 PRINT " Q CALCULATOR, Resonant Circuits";TAB(57);"by George Murphy VE3ERP";
- 140 COLOR 1,0:PRINT STRING$(80,223);
- 150 COLOR 0,7:LOCATE 13,22
- 160 PRINT " Press 1 to RUN program or 0 to EXIT....."
- 170 COLOR 7,0
- 180 Y$=INKEY$:IF Y$=""THEN 180
- 190 IF Y$="0"THEN CLS:RUN EX$
- 200 IF Y$="1"THEN 220
- 210 GOTO 180
- 220 LOCATE CSRLIN-1:PRINT E$;:LOCATE CSRLIN-1
- 230 '
- 240 '.....inputs
- 250 LOCATE 3
- 260 IF F=0 THEN INPUT " ENTER: Frequency (MHz)...................";Y:GOSUB 330
- 270 IF L=0 THEN INPUT " ENTER: Inductance (>H)...................";L:GOSUB 330
- 280 IF C=0 THEN INPUT " ENTER: Capacitance (pF)..................";C:GOSUB 330
- 290 IF X=0 THEN INPUT " ENTER: Reactance, XL, XC (ohms)..........";X:GOSUB 330
- 300 IF F*L*C*X>0 THEN 330
- 310 VIEW PRINT 3 TO 24:CLS:VIEW PRINT:GOTO 240
- 320 '
- 330 '.....calculate
- 340 IF F=0 AND Y>0 THEN F=Y*10^3
- 350 IF F=0 AND L*C>0 THEN F=10^6/(2*PI*SQR(L*C)):GOTO 330
- 360 IF F=0 AND X*L>0 THEN F=10^3*X/(2*PI*L): GOTO 330
- 370 IF F=0 AND X*C>0 THEN F=10^9*1/(2*PI*C*X): GOTO 330
- 380 IF L=0 AND F*C>0 THEN L=(10^6/(2*PI*F))^2/C: GOTO 330
- 390 IF L=0 AND F*X>0 THEN L=X/(2*PI*F)*10^3: GOTO 330
- 400 IF C=0 AND F*L>0 THEN C=(10^6/(2*PI*F))^2/L: GOTO 330
- 410 IF C=0 AND F*X>0 THEN C=1/(2*PI*F*X)*10^3: GOTO 330
- 420 IF X=0 AND F*L>0 THEN X=2*PI*F*L/10^3: GOTO 330
- 430 IF X=0 AND F*C>0 THEN X=2*PI*F*C/10^3: GOTO 330
- 440 IF F*L*C*X>0 THEN 470
- 450 RETURN
- 460 '
- 470 '.....print
- 480 VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
- 490 PRINT " Frequency (MHz).........................";USING U1$;F/10^3
- 500 PRINT " Inductance (>H).........................";USING U1$;L
- 510 PRINT " Capacitance (pF)........................";USING U1$;C
- 520 PRINT " Reactance XL, XC (ohms).................";USING U1$;X
- 530 LN=CSRLIN
- 540 PRINT UL$;
- 550 IF Z$<>""THEN 670
- 560 '
- 570 PRINT " Press number in < > to describe resonant circuit:"
- 580 PRINT " < 1 > SERIES resonant (unloaded)"
- 590 PRINT " < 2 > PARALLEL resonant (loaded by a resistive impedance)"
- 600 J$=INKEY$
- 610 IF J$="1"THEN R$=" Series resistance (ohms)................":GOTO 640
- 620 IF J$="2"THEN R$=" Parallel load resistance (ohms).........":GOTO 640
- 630 GOTO 600
- 640 VIEW PRINT LN TO 24:CLS:VIEW PRINT:LOCATE LN
- 650 PRINT " ENTER:";R$;:INPUT R
- 660 '
- 670 LOCATE CSRLIN-1:PRINT E$;:LOCATE CSRLIN-1
- 680 PRINT R$;USING U1$;R
- 690 IF J$="1"THEN Q=X/R:Q$=" Series unloaded resonant circuit Q......"
- 700 IF J$="2"THEN Q=R/X:Q$=" Parallel loaded resonant circuit Q......"
- 710 PRINT Q$;USING U1$;Q
- 720 PRINT UL$;
- 730 LN=CSRLIN:GOSUB 960
- 740 LOCATE 25,1:PRINT E$;
- 750 LOCATE LN
- 760 PRINT " Press number in < > to:"
- 770 PRINT UL$;
- 780 PRINT " <0> QUIT"
- 790 PRINT " <1> CHANGE Q"
- 800 I$=INKEY$
- 810 IF I$="0"THEN 920
- 820 IF I$="1"THEN 850
- 830 GOTO 800
- 840 '
- 850 COLOR 0,7:LOCATE CSRLIN,4:INPUT " ENTER: new Q";NQ
- 860 COLOR 7,0
- 870 IF J$="1"THEN X=R*NQ
- 880 IF J$="2"THEN X=R/NQ
- 890 VIEW PRINT 3 TO 24:CLS:VIEW PRINT
- 900 L=0:C=0:GOTO 330
- 910 '
- 920 '.....end
- 930 GOTO 100 'start
- 940 END
- 950 '
- 960 'HARDCOPY
- 970 GOSUB 1080:LOCATE 25,2:COLOR 14,6
- 980 PRINT " Press 1 to print screen, 2 to print screen & ";
- 990 PRINT "advance paper, or 3 to continue.";:COLOR 7,0
- 1000 Z$=INKEY$:IF Z$="3"THEN GOSUB 1080:RETURN
- 1010 IF Z$="1"OR Z$="2"THEN GOSUB 1080:GOTO 1030
- 1020 GOTO 1000
- 1030 FOR QX=1 TO 24:FOR QY=1 TO 80
- 1040 LPRINT CHR$(SCREEN(QX,QY));
- 1050 NEXT QY:NEXT QX
- 1060 IF Z$="2"THEN LPRINT CHR$(12)
- 1070 GOTO 970
- 1080 LOCATE 25,1:PRINT STRING$(80,32);:RETURN
-